//
//  WBNetworkManager.swift
//  PersonalWeibo
//
//  Created by Liuwx on 2017/9/23.
//  Copyright © 2017年 Liuwx. All rights reserved.
//

import UIKit
//导入框架的文件夹的名字
import AFNetworking

///Swift 的枚举支持任意数据类型
///switch / enum 在OC中都只是支持整数

enum WBHTTPMethod {
    case GET
    case POST
}

/// 网络管理工具
class WBNetworkManager: AFHTTPSessionManager {

    ///静态区 = 常量区， 不允许修改 
    /// 在第一次访问的时候，执行闭包，并且将结果保存在shared 常量中
    static let shared = WBNetworkManager()
    
    //使用一个函数封装AFN  GET / POST 请求
    
    /// 封装AFN的get / post 请求
    ///
    /// - Parameters:
    ///   - method: get / post
    ///   - URLString: URLString
    ///   - parameters: 参数字典
    ///   - completion: 完成回调[json(字典/数组)， 是否成功]
    func request(method: WBHTTPMethod = .GET, URLString: String, parameters:[String : AnyObject], completion:@escaping (_ json: Any?, _ isSuccess: Bool) -> ()) {
        
        ///成功回调
        let success = {(task: URLSessionDataTask, json: Any?) -> () in

            
           completion(json, true)
        }
        ///失败回调
        let failure = {(task: URLSessionDataTask?, error: Error) -> () in
            print("网络请求错误 \(error)")
            completion(nil, false)

        }
        
        if method == .GET {
            get(URLString, parameters: parameters, progress: nil, success: success, failure: failure)
        }else {
            post(URLString, parameters: parameters, progress: nil, success: success, failure: failure)

        }
        
        
    }
    
}
